#ifndef TIR_INCLUDED
#define TIR_INCLUDED

#include "point.h"
#include "vaisseau.h"

class Tir
{
public:
	//constructeurs
	Tir();
	Tir(const point& p,double anglevert,double anglehor,float vitesse,float puissance,int id);
	Tir(double x,double y,double z,double anglevert,double anglehor,float vitesse,float puissance,int id);

	//Fonctions
	virtual Tir& deplacement(double intervalle);

	//Sets
	Tir& Setanglevert(double angle);
	Tir& Setanglehor(double angle);
	Tir& Setvitesse(double vitesse);
	Tir& Setpuissance(float puissance);
	Tir& Setid(int id);

	//Gets
	point& Getposition();
	double Getanglevert();
	double Getanglehor();
	float Getvitesse();
	float Getpuissance();
	int Getid();

protected:
	point position;
	double anglevert;
	double anglehor;
	float vitesse;
	float puissance;
	int id;
};

class Tirauto : public Tir
{
private:
	const Vaisseau* cible;
public:
	Tirauto(const point& p,double anglevert,double anglehor,float vitesse,float puissance,int id,const Vaisseau& cible);
	Tirauto& deplacement(double intervalle);
};

class Tirexplo : public Tir
{
private:
	~Tirexplo();

};


inline point& Tir::Getposition() {return position;}
inline double Tir::Getanglevert() {return anglevert;}
inline double Tir::Getanglehor() {return anglehor;}
inline float Tir::Getvitesse() {return vitesse;}
inline float Tir::Getpuissance() {return puissance;}
inline int Tir::Getid() {return id;}

#endif